home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / AttrTableDataModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  14.1 KB  |  534 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseEdit;
  4. import com.extensibility.app.DialogFactory;
  5. import com.extensibility.app.UI;
  6. import com.extensibility.rock.table.QlickerDataSource;
  7. import com.extensibility.util.Debug;
  8. import com.extensibility.xa.undo.AttrDefaultUndoable;
  9. import com.extensibility.xa.undo.AttrNameUndoable;
  10. import com.extensibility.xa.undo.AttrNewRowUndoable;
  11. import com.extensibility.xa.undo.AttrOptionsUndoable;
  12. import com.extensibility.xa.undo.AttrOwnerUndoable;
  13. import com.extensibility.xa.undo.AttrRequiredUndoable;
  14. import com.extensibility.xa.undo.AttrTypeUndoable;
  15. import com.extensibility.xml.AttributeDeclaration;
  16. import com.extensibility.xml.BaseDeclaration;
  17. import com.extensibility.xml.DTDUtilities;
  18. import com.extensibility.xml.DataTypeDeclaration;
  19. import com.extensibility.xml.DeclarationChangeEvent;
  20. import com.extensibility.xml.ParserException;
  21. import com.extensibility.xml.dt.DataTypeEnumeration;
  22. import com.extensibility.xml.dt.DataTypeFactory;
  23. import com.extensibility.xml.dt.DataTypeIntf;
  24. import java.awt.Component;
  25. import java.util.Enumeration;
  26. import java.util.EventObject;
  27. import java.util.Hashtable;
  28. import java.util.Vector;
  29. import javax.swing.table.AbstractTableModel;
  30.  
  31. public final class AttrTableDataModel extends DeclModelExtra implements QlickerDataSource {
  32.    public static final int COL_NAME = 2;
  33.    public static final int COL_OWNER = 3;
  34.    public static final int COL_TYPE = 4;
  35.    public static final int COL_OPTIONS = 5;
  36.    public static final int COL_DEFAULT = 6;
  37.    public static final int COL_REQUIRED = 7;
  38.    public static final int COL_COUNT = 8;
  39.    static final int AGGREGATE_BY_REFERENT = 1;
  40.    static final int AGGREGATE_BY_MATCH = 2;
  41.  
  42.    public AttrTableDataModel(SchemaDoc var1) {
  43.       super(var1, Class.forName("com.extensibility.xa.AggregateAttributeDecl"), Class.forName("com.extensibility.xml.AttributeDeclaration"));
  44.    }
  45.  
  46.    String getGlobalName() {
  47.       return ((DeclTableModel)this).getSchemaDoc().getSchema().isSupported("GESTALT_GLOBAL_ATTRS") ? UI.getString("attr.global") : "";
  48.    }
  49.  
  50.    public int getColumnCount() {
  51.       return this.getBaseColumnCount() + ((DeclModelExtra)this).getExtraColumnCount();
  52.    }
  53.  
  54.    protected final int getBaseColumnCount() {
  55.       return 8;
  56.    }
  57.  
  58.    char getHeaderMnemonic(int var1) {
  59.       return var1 < 8 ? UI.getMnemonic(String.valueOf(String.valueOf("attrlist.column").concat(String.valueOf(var1))).concat(String.valueOf(".header"))) : '\u0000';
  60.    }
  61.  
  62.    public String getColumnName(int var1) {
  63.       return var1 < 8 ? String.valueOf(String.valueOf("attrlist.column").concat(String.valueOf(var1))).concat(String.valueOf(".header")) : super.getColumnName(var1);
  64.    }
  65.  
  66.    public Class getColumnClass(int var1) {
  67.       switch (var1) {
  68.          case 2:
  69.             return (new String()).getClass();
  70.          case 3:
  71.             return (new String()).getClass();
  72.          case 4:
  73.             return (new String()).getClass();
  74.          case 5:
  75.             return (new String()).getClass();
  76.          case 6:
  77.             return (new String()).getClass();
  78.          case 7:
  79.             return (new Boolean(true)).getClass();
  80.          default:
  81.             return super.getColumnClass(var1);
  82.       }
  83.    }
  84.  
  85.    public boolean isCellEditable(int var1, int var2) {
  86.       if (var1 < 0) {
  87.          return false;
  88.       } else {
  89.          return var2 == 3 && !((DeclTableModel)this).isNewRow(var1) && this.getAggregate(var1).isShared() ? false : super.isCellEditable(var1, var2);
  90.       }
  91.    }
  92.  
  93.    public Object getValueAt(int var1, int var2) {
  94.       if (((DeclTableModel)this).isNewRow(var1)) {
  95.          switch (var2) {
  96.             case 2:
  97.             case 3:
  98.             case 4:
  99.             case 5:
  100.             case 6:
  101.                return "";
  102.             case 7:
  103.                return Boolean.FALSE;
  104.             default:
  105.                return super.getValueAt(var1, var2);
  106.          }
  107.       } else {
  108.          AggregateAttributeDecl var3 = this.getAggregate(var1);
  109.          switch (var2) {
  110.             case 2:
  111.                return var3.getName();
  112.             case 3:
  113.                String var4 = var3.getOwnerName();
  114.                if (var4.length() == 0) {
  115.                   return this.getGlobalName();
  116.                }
  117.  
  118.                return var4;
  119.             case 4:
  120.                return var3.getTypeForDisplay(((DeclTableModel)this).getSchemaDoc().getSchema());
  121.             case 5:
  122.                return this.getIndAttributeOptions(var1);
  123.             case 6:
  124.                if (var3.getDefault() != null && var3.getDefault().equals("")) {
  125.                   return "\"\"";
  126.                } else {
  127.                   if (var3.getDefault() == null) {
  128.                      return new String("");
  129.                   }
  130.  
  131.                   return var3.getDefault();
  132.                }
  133.             case 7:
  134.                return var3.getRequired() ? Boolean.TRUE : Boolean.FALSE;
  135.             default:
  136.                return super.getValueAt(var1, var2);
  137.          }
  138.       }
  139.    }
  140.  
  141.    public String getIndAttributeOptions(int var1) {
  142.       return this.getAttributeOptions(this.getAggregate(var1));
  143.    }
  144.  
  145.    public String getAttributeOptions(AggregateAttributeDecl var1) {
  146.       return var1.getOptions();
  147.    }
  148.  
  149.    public AggregateAttributeDecl getAggregate(int var1) {
  150.       return (AggregateAttributeDecl)((DeclTableModel)this).getDeclaration(var1);
  151.    }
  152.  
  153.    public int getMetaSelector() {
  154.       return 3;
  155.    }
  156.  
  157.    private Vector aggregateByReferent() {
  158.       Hashtable var1 = new Hashtable();
  159.       Enumeration var2 = super.doc.getDeclarations(Class.forName("com.extensibility.xml.AttributeDeclaration"));
  160.  
  161.       while(var2.hasMoreElements()) {
  162.          AttributeDeclaration var3 = (AttributeDeclaration)var2.nextElement();
  163.          if (var3.isGlobal()) {
  164.             var1.put(((BaseDeclaration)var3).getName(), new AggregateAttributeDecl(var3));
  165.          }
  166.       }
  167.  
  168.       Vector var7 = new Vector();
  169.       var2 = super.doc.getDeclarations(Class.forName("com.extensibility.xml.AttributeDeclaration"));
  170.  
  171.       while(var2.hasMoreElements()) {
  172.          AttributeDeclaration var4 = (AttributeDeclaration)var2.nextElement();
  173.          if (var4.isGlobal()) {
  174.             var7.addElement(var1.get(((BaseDeclaration)var4).getName()));
  175.          } else if (var4.isReference()) {
  176.             AggregateAttributeDecl var5 = (AggregateAttributeDecl)var1.get(((BaseDeclaration)var4).getName());
  177.             if (var5 != null && var5.equals(var4)) {
  178.                var5.addAttribute(var4);
  179.             } else {
  180.                var7.addElement(new AggregateAttributeDecl(var4));
  181.             }
  182.          } else {
  183.             var7.addElement(new AggregateAttributeDecl(var4));
  184.          }
  185.       }
  186.  
  187.       return var7;
  188.    }
  189.  
  190.    private Vector aggregateByMatch() {
  191.       Vector var1 = new Vector();
  192.       Enumeration var2 = super.doc.getDeclarations(Class.forName("com.extensibility.xml.AttributeDeclaration"));
  193.  
  194.       while(var2.hasMoreElements()) {
  195.          AttributeDeclaration var3 = (AttributeDeclaration)var2.nextElement();
  196.          int var4 = var1.size() - 1;
  197.          int var5 = 0;
  198.  
  199.          while(var5 <= var4) {
  200.             int var6 = var5 + (var4 - var5) / 2;
  201.             AggregateAttributeDecl var7 = (AggregateAttributeDecl)var1.elementAt(var6);
  202.             int var8 = var7.compareTo(var3);
  203.             if (var8 == 0) {
  204.                var7.addAttribute(var3);
  205.                break;
  206.             }
  207.  
  208.             if (var8 < 0) {
  209.                var5 = var6 + 1;
  210.             } else {
  211.                var4 = var6 - 1;
  212.             }
  213.          }
  214.  
  215.          if (var5 > var4) {
  216.             AggregateAttributeDecl var9 = new AggregateAttributeDecl(var3);
  217.             var1.insertElementAt(var9, var5);
  218.          }
  219.       }
  220.  
  221.       return var1;
  222.    }
  223.  
  224.    public Enumeration getDeclarations() {
  225.       Vector var1 = this.getAggregationMethod() == 2 ? this.aggregateByMatch() : this.aggregateByReferent();
  226.       return var1.elements();
  227.    }
  228.  
  229.    ParserException validateCell(String var1, int var2, int var3) {
  230.       if (var1.equals(this.getValueAt(var2, var3))) {
  231.          return null;
  232.       } else {
  233.          switch (var3) {
  234.             case 2:
  235.                return ((DeclTableModel)this).validateName(var1, (Class)null, (BaseDeclaration)null, true);
  236.             case 3:
  237.                if (var1.length() == 0 && ((DeclTableModel)this).getSchemaDoc().getSchema().isSupported("GESTALT_GLOBAL_ATTRS")) {
  238.                   return null;
  239.                } else {
  240.                   String var4;
  241.                   if (DTDUtilities.isPEName(var1)) {
  242.                      var4 = var1.substring(1);
  243.                   } else {
  244.                      var4 = var1;
  245.                   }
  246.  
  247.                   ParserException var11 = ((DeclTableModel)this).validateName(var4, (Class)null, (BaseDeclaration)null, true);
  248.                   if (var11 != null) {
  249.                      return var11;
  250.                   } else {
  251.                      AttributeDeclaration.Owner var6 = super.doc.getNamedAttributeOwner(var1);
  252.                      if (var6 == null && DTDUtilities.isPEName(var1)) {
  253.                         String var7 = DTDUtilities.convertPEName(var1, false);
  254.                         if (super.doc.getNamedDeclaration(var7, Class.forName("com.extensibility.xml.InternalPEDeclaration")) != null) {
  255.                            return new ParserException(231, var1);
  256.                         }
  257.  
  258.                         if (!XADialogFactory.askAutoCreatePE((Component)null, var1)) {
  259.                            var11 = new ParserException(208, var1);
  260.                            var11.setBeenReported(true);
  261.                            return var11;
  262.                         }
  263.                      }
  264.  
  265.                      return null;
  266.                   }
  267.                }
  268.             case 4:
  269.                if (var1.trim().length() != 0 && ((DeclTableModel)this).getSchemaDoc().getNamedDataTypeIntf(var1) == null) {
  270.                   if (var1.indexOf(":") != -1) {
  271.                      return null;
  272.                   }
  273.  
  274.                   if (!((DeclTableModel)this).getSchemaDoc().isSupported(Class.forName("com.extensibility.xml.DataTypeDeclaration"))) {
  275.                      return new ParserException(207, var1);
  276.                   }
  277.  
  278.                   if (!XADialogFactory.askAutoCreateDataType((Component)null, var1)) {
  279.                      return new ParserException(207, var1);
  280.                   }
  281.                }
  282.  
  283.                return null;
  284.             case 5:
  285.                try {
  286.                   this.getAggregate(var2).getDataType().setOptions(var1);
  287.                } catch (NumberFormatException var8) {
  288.                   ParserException var10 = new ParserException(95, "");
  289.                   return var10;
  290.                } catch (IndexOutOfBoundsException var9) {
  291.                   ParserException var5 = new ParserException(96, "");
  292.                   return var5;
  293.                }
  294.             case 6:
  295.             case 7:
  296.             default:
  297.                return super.validateCell(var1, var2, var3);
  298.          }
  299.       }
  300.    }
  301.  
  302.    public void setValueAt(Object var1, int var2, int var3) {
  303.       if (!var1.equals(this.getValueAt(var2, var3))) {
  304.          AggregateAttributeDecl var4 = this.getAggregate(var2);
  305.          if (((DeclTableModel)this).isNewRow(var2)) {
  306.             if (var3 == 2) {
  307.                String var10000 = (String)var1;
  308.             } else {
  309.                ((DeclTableModel)this).getUniqueDeclName((String)null);
  310.             }
  311.  
  312.             AttrNewRowUndoable var6 = new AttrNewRowUndoable(this, var2, var1);
  313.             ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var6);
  314.             ((BaseEdit)var6).doCommand();
  315.             super.doc.touch(super.doc.getFocusedURI(true));
  316.             if (var3 == 2) {
  317.                return;
  318.             }
  319.          } else {
  320.             super.doc.touch(var4);
  321.          }
  322.  
  323.          switch (var3) {
  324.             case 2:
  325.                AttrNameUndoable var5 = new AttrNameUndoable(this, var4, var1);
  326.                ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var5);
  327.                ((BaseEdit)var5).doCommand();
  328.                break;
  329.             case 3:
  330.                BaseDeclaration var11 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var1.toString(), Class.forName("com.extensibility.xml.ElementDeclaration"));
  331.                if (var11 != null && !((DeclTableModel)this).getSchemaDoc().isEditable(var11.getURI())) {
  332.                   String var14 = UI.getString("stop.decl.is.locked", var1.toString());
  333.                   DialogFactory.stop((Component)null, var14);
  334.                } else {
  335.                   AttrOwnerUndoable var13 = new AttrOwnerUndoable(this, var4, var1);
  336.                   ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var13);
  337.                   ((BaseEdit)var13).doCommand();
  338.                }
  339.                break;
  340.             case 4:
  341.                if (var1.toString().trim().length() == 0) {
  342.                   var1 = ((DeclTableModel)this).getSchemaDoc().getSchema().getDataTypeDisplay(DataTypeFactory.createDataType(DataTypeIntf.STRING));
  343.                }
  344.  
  345.                if (((DeclTableModel)this).getSchemaDoc().getNamedDataTypeIntf((String)var1) == null && ((String)var1).indexOf(":") == -1) {
  346.                   DataTypeDeclaration var7 = new DataTypeDeclaration(var1.toString(), DataTypeFactory.createDataType(DataTypeIntf.STRING));
  347.                   ((DeclTableModel)this).getSchemaDoc().insertDeclaration(var7, (BaseDeclaration)null);
  348.                }
  349.  
  350.                AttrTypeUndoable var12 = new AttrTypeUndoable(this, var4, var1);
  351.                ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var12);
  352.                ((BaseEdit)var12).doCommand();
  353.                break;
  354.             case 5:
  355.                AttrOptionsUndoable var8 = new AttrOptionsUndoable(this, var4, var1);
  356.                ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var8);
  357.                ((BaseEdit)var8).doCommand();
  358.                break;
  359.             case 6:
  360.                AttrDefaultUndoable var9 = new AttrDefaultUndoable(this, var4, var1);
  361.                if (((String)var1).length() != 0 || var4.getDefault() != null) {
  362.                   ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var9);
  363.                }
  364.  
  365.                ((BaseEdit)var9).doCommand();
  366.                break;
  367.             case 7:
  368.                AttrRequiredUndoable var10 = new AttrRequiredUndoable(this, var4, var1);
  369.                ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var10);
  370.                ((BaseEdit)var10).doCommand();
  371.                break;
  372.             default:
  373.                super.setValueAt(var1, var2, var3);
  374.          }
  375.  
  376.       }
  377.    }
  378.  
  379.    public BaseDeclaration createDeclaration(String var1) {
  380.       return new AggregateAttributeDecl(new AttributeDeclaration(var1));
  381.    }
  382.  
  383.    public Object getQlickerData(String var1, Object var2) {
  384.       if (var1.equals("TYPES")) {
  385.          DataTypeEnumeration var4 = ((DeclTableModel)this).getSchemaDoc().getSchema().getAllTypes();
  386.          return new 1(var4, this);
  387.       } else if (var1.equals("AUTO_COMPLETE_DATA")) {
  388.          String var3 = (String)var2;
  389.          return DTDUtilities.isPEName(var3) ? super.doc.getAttrGroupPENames() : super.doc.getDeclNames(Class.forName("com.extensibility.xml.ElementDeclaration"), false);
  390.       } else {
  391.          Debug.assert(false, String.valueOf("Unknown getData key: ").concat(String.valueOf(var1)));
  392.          return "";
  393.       }
  394.    }
  395.  
  396.    public int getRowForDecl(BaseDeclaration var1) throws IllegalArgumentException {
  397.       if (var1 == null) {
  398.          return -1;
  399.       } else if (var1 instanceof AggregateAttributeDecl) {
  400.          return this.getRowForDecl(((AggregateAttributeDecl)var1).getFirst());
  401.       } else {
  402.          if (var1 instanceof AttributeDeclaration) {
  403.             for(int var2 = 0; var2 < super.declarations.size(); ++var2) {
  404.                if (this.getAggregate(var2).contains((AttributeDeclaration)var1)) {
  405.                   return var2;
  406.                }
  407.             }
  408.          }
  409.  
  410.          return -1;
  411.       }
  412.    }
  413.  
  414.    public void declarationRemoved(SchemaDocEvent var1) {
  415.       BaseDeclaration var2 = var1.getDeclaration();
  416.       int var3 = this.getRowForDecl(var2);
  417.       if (var2 instanceof AggregateAttributeDecl) {
  418.          super.declarations.removeElementAt(var3);
  419.          ((AbstractTableModel)this).fireTableRowsDeleted(var3, var3);
  420.       } else {
  421.          if (!(var2 instanceof AttributeDeclaration)) {
  422.             return;
  423.          }
  424.  
  425.          AggregateAttributeDecl var4 = (AggregateAttributeDecl)((DeclTableModel)this).getDeclaration(var3);
  426.          var4.removeAttribute((AttributeDeclaration)var2);
  427.          if (!var4.getAttributes().hasMoreElements()) {
  428.             super.declarations.removeElementAt(var3);
  429.             ((AbstractTableModel)this).fireTableRowsDeleted(var3, var3);
  430.          } else {
  431.             ((AbstractTableModel)this).fireTableRowsUpdated(var3, var3);
  432.          }
  433.       }
  434.  
  435.    }
  436.  
  437.    protected int getAggregationMethod() {
  438.       return ((DeclTableModel)this).getSchemaDoc().getSchema().isSupported("GESTALT_GLOBAL_ATTRS") ? 1 : 2;
  439.    }
  440.  
  441.    public void flavorChanged(SchemaDocEvent var1) {
  442.       super.flavorChanged(var1);
  443.       ((DeclTableModel)this).updateFromSchema((BaseDeclaration)null);
  444.    }
  445.  
  446.    public void declarationChanged(SchemaDocEvent var1, DeclarationChangeEvent var2) {
  447.       super.declarationChanged(var1, var2);
  448.       if (((EventObject)var2).getSource() instanceof AttributeDeclaration.Owner && var2.getWhich() == 1) {
  449.          for(int var3 = 0; var3 < super.declarations.size(); ++var3) {
  450.             AggregateAttributeDecl var4 = (AggregateAttributeDecl)super.declarations.elementAt(var3);
  451.             if (var4.contains((AttributeDeclaration.Owner)((EventObject)var2).getSource())) {
  452.                ((DeclTableModel)this).updateRow(var4);
  453.             }
  454.          }
  455.       }
  456.  
  457.       if (((EventObject)var2).getSource() instanceof AttributeDeclaration) {
  458.          AggregateAttributeDecl var5 = (AggregateAttributeDecl)((DeclTableModel)this).getDeclaration(this.getRowForDecl((AttributeDeclaration)((EventObject)var2).getSource()));
  459.          if (var5 != null) {
  460.             ((DeclTableModel)this).updateRow(var5);
  461.          }
  462.       }
  463.  
  464.    }
  465.  
  466.    public void declarationInserted(SchemaDocEvent var1) {
  467.       BaseDeclaration var2 = var1.getDeclaration();
  468.       if (var2 instanceof AggregateAttributeDecl) {
  469.          super.declarations.addElement(var2);
  470.          ((AbstractTableModel)this).fireTableRowsInserted(super.declarations.size() - 1, super.declarations.size() - 1);
  471.       } else {
  472.          if (!(var2 instanceof AttributeDeclaration)) {
  473.             return;
  474.          }
  475.  
  476.          AttributeDeclaration var3 = (AttributeDeclaration)var2;
  477.          if (this.getAggregationMethod() == 2) {
  478.             Enumeration var7 = super.declarations.elements();
  479.  
  480.             for(int var9 = 0; var7.hasMoreElements(); ++var9) {
  481.                AggregateAttributeDecl var6 = (AggregateAttributeDecl)var7.nextElement();
  482.                if (var6.compareTo(var3) == 0) {
  483.                   var6.addAttribute(var3);
  484.                   ((AbstractTableModel)this).fireTableRowsUpdated(var9, var9);
  485.                   return;
  486.                }
  487.             }
  488.          } else if (!var3.isGlobal() && var3.isReference()) {
  489.             int var4 = this.getRowForDecl(var3.getReferent(((DeclTableModel)this).getSchemaDoc().getSchema()));
  490.             AggregateAttributeDecl var5 = (AggregateAttributeDecl)((DeclTableModel)this).getDeclaration(var4);
  491.             var5.addAttribute(var3);
  492.             ((AbstractTableModel)this).fireTableRowsUpdated(var4, var4);
  493.             return;
  494.          }
  495.  
  496.          AggregateAttributeDecl var8 = new AggregateAttributeDecl(var3);
  497.          super.declarations.addElement(var8);
  498.          int var10 = super.declarations.size();
  499.          ((AbstractTableModel)this).fireTableRowsInserted(var10, var10);
  500.       }
  501.  
  502.    }
  503.  
  504.    protected BaseDeclaration getDeclaration(int var1, int var2, String var3) {
  505.       Object var4 = null;
  506.       if (var2 == 3) {
  507.          if (DTDUtilities.isPEName(var3)) {
  508.             var3 = DTDUtilities.convertPEName(var3, false);
  509.             var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.InternalPEDeclaration"));
  510.          } else {
  511.             var4 = ((DeclTableModel)this).getSchemaDoc().getNamedElement(var3);
  512.          }
  513.       } else if (var2 == 6) {
  514.          if (DTDUtilities.isGEName(var3)) {
  515.             var3 = DTDUtilities.convertGEName(var3, false);
  516.             var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.GeneralEntityDeclaration"));
  517.          }
  518.       } else if (var2 == 4) {
  519.          var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.DataTypeDeclaration"));
  520.       }
  521.  
  522.       return (BaseDeclaration)var4;
  523.    }
  524.  
  525.    public int cullAttribute(AggregateAttributeDecl var1, String var2) {
  526.       int var3 = super.getRowForDecl(var1);
  527.       AttributeDeclaration var4 = var1.remove(var2);
  528.       AggregateAttributeDecl var5 = new AggregateAttributeDecl(var4);
  529.       super.declarations.insertElementAt(var5, var3);
  530.       ((AbstractTableModel)this).fireTableRowsInserted(var3, var3);
  531.       return var3;
  532.    }
  533. }
  534.